C++中是^干什么的

来源:百度知道 编辑:UC知道 时间:2024/05/10 20:53:59
#include<istream.h>
void main()
{int a=2,b=7;
int c=a^b<<2;
cout<<c<<endl;
}
输出结果是30
请问一下为什么,C++中是^干什么的

异或,
就是对应位,如果不同,则返回1,
相同则返回0

首先7(二进制是00000000 00000111)向右移两位为:00000000 00011100
2的二进制是00000000 00000010

把它们放在一起就是
00000000 00000010
00000000 00011100
如果对应位的值相同,则返回的结果相应位为0,不同为1,即
00000000 00011110
上面的二进制对应于30

就是对应位,如果不同,则返回1,
相同则返回0

首先7(二进制是00000000 00000111)向右移两位为:00000000 00011100
2的二进制是00000000 00000010

把它们放在一起就是
00000000 00000010
00000000 00011100
如果对应位的值相同,则返回的结果相应位为0,不同为1,即
00000000 00011110
上面的二进制对应于30